# 集合（set）是一个无序的不重复元素序列。
# 集合中的元素不会重复，并且可以进行交集、并集、差集等常见的集合操作。
# 可以使用大括号 { } 创建集合，元素之间用逗号 , 分隔， 或者也可以使用 set() 函数创建集合。
set1 = {1, 2, 3, 4}            # 直接使用大括号创建集合
set2 = set([4, 5, 6, 7])      # 使用 set() 函数从列表创建集合,应为括号
print(f"set1的内容是{set1},类型是{type(set1)},set2的内容是{set2},类型是{type(set2)}")
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)#集合去重，内容无序，因此不支持下标索引
#集合允许修改
set2.add("Python")
print(set2)
set1.remove(1)
print(set1)
#随机取出一个元素
my_set = {'apple','pear',"你好",True,2}
my_set.pop()
print(f"随机取出一个元素后，set2内容变为：{my_set}")
my_set.clear()#清空列表
print(f"集合被清空，结果是：{my_set}")
print("----------------------")
#取两个集合的差集
set3 = {1, 2, 3}
set4 = {2, 4, 6}
set5 = set3.difference(set4)#取差集，计算set3中有但set4中没有的元素。
print(f"取出差集后的结果是：{set5}")
print(f"取差集后，原有set3中内容为：{set3}")
print(f"取差集后，原有set4中内容为：{set4}")#取差集后原集合不变
set3.difference_update(set4)#移除差集，更新集合set3
print(f"取差集后，原有set3中内容为：{set3}")
print(f"取差集后，原有set4中内容为：{set4}")#集合4没变
#合并2个集合
set6 = set3.union(set4)
print(f"两集合合并后去重的结果为set6：{set6}")
#统计集合元素数量
set7 = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
num = len(set7)
print(f"集合内的元素数量有：{num}个")
#遍历集合不支持while循环(无序，不支持下标索引)，只能用for循环
for x in set7:
    print(f"集合的元素有：{x}")
